Skip to main content

cnpm 私有服务搭建

环境准备#

  • nodejs
  • npm
  • yarn
  • mysql

cnpm#

下载 git 仓库

git clone https://github.com/cnpm/cnpmjs.org.git
cd cnpmjs.org

安装 mysql#

http://note.youdao.com/noteshare?id=0aecd1783eb7914da1817ca44b991ba0

创建数据库#

mysql -uroot -p000000 -e 'DROP DATABASE IF EXISTS npm_db;' &&\mysql -uroot -p000000 -e 'CREATE DATABASE npm_db;' &&\mysql -uroot -p000000 'npm_db' < docs/db.sql &&\mysql -uroot -p000000 'npm_db' -e 'show tables;'
  • -p000000 密码为 000000
  • 库名: npm_db

修改数据库配置#

vi config/index.js

  bindingHost: '192.168.9.157', // 服务器 IP 地址, 设置 127.0.0.1 则无法再远端访问, 注释掉也可以  
  /**   * database config   */
  database: {    db: 'npm_db',    username: 'root',    password: '000000',  }
  // sync source, upstream registry  // If you want to directly sync from official npm's registry  // please drop them an email first  sourceNpmRegistry: 'http://192.168.9.157:7001',  sourceNpmWeb: 'http://192.168.9.157:7002',

或使用 config.json

const SERVER_HOST = "192.168.9.157";
module.exports = {  debug: false,  enableCluster: false, // enable cluster mode  enablePrivate: false, // 启用专用模式,只有管理员可以发布,其他使用只能从源NPM同步包  bindingHost: SERVER_HOST,  database: {    db: "npm_db",    host: "localhost",    port: 3306,    username: "root",    password: "000000"  },  admins: {    admin: "zhansq@tigerft.com"  },  syncModel: "none" // 'none', 'all', 'exist'};

管理员账号#

  // default system admins  admins: {    // name: email    fengmk2: 'fengmk2@gmail.com',    admin: 'admin@cnpmjs.org',    dead_horse: 'dead_horse@qq.com',  },

启动服务#

npm start

启动CNPM服务器,默认会打开两个端口,7001用于NPM的服务,7002用于Web访问


检查防火墙#

如果无法访问,检查并关闭防火墙 参考

nginx 端口映射#

通过 nginx 将 7001 端口映射至 80 端口

使用#

临时

npm install package-test --registry=http://192.168.9.157:7001

全局

npm config set registry http://192.168.9.157:7001
cnpm config set registry http://192.168.9.157:7001

默认 :https://registry.npmjs.org/